package eu.whowie.jast.remote;

public interface ModuleUIHandler {
	/**
	 * @param dialogType
	 * @param colorMode
	 *            - YDialogColorMode
	 * @return
	 */
	public JDialogInterface createDialog(YDialogType dialogType, int colorMode);

	public YJLabelInterface createLabel(YJWidgetInterface parent, String text,
			boolean isHeading, boolean isOutputField);

	public YJTableInterface createTable(YJWidgetInterface parent,
			YTableHeader header_disown, boolean multiSelection);

	/**
	 * @param parent
	 * @param dim
	 *            - YUIDimension
	 * @param stretchable
	 * @return
	 */
	public YJSpacingInterface createSpacing(YJWidgetInterface parent, int dim,
			boolean stretchable, int size);

	public YJSquashInterface createSquash(YJWidgetInterface parent,
			boolean horSquash, boolean vertSquash);

	public YJCheckBoxFrameInterface ceateCheckBoxFrame(
			YJWidgetInterface parent, final String label, boolean checked);

	/**
	 * 
	 * @param widget
	 * @param dim
	 *            - YUIDimension
	 * @return
	 */
	public YJLayoutBoxInterface createLayoutBox(YJWidgetInterface widget,
			int dim);

	public YJButtonBoxInterface createButtonBox(YJWidgetInterface widget);

	public YJPushButtonInterface createPushButton(YJWidgetInterface widget,
			String string);

	public YJInputFieldInterface createInputField(YJWidgetInterface widget,
			String string, boolean enabled);

	public YJCheckBoxInterface createCheckBox(YJWidgetInterface widget,
			String string, boolean enabled);

	public YJRadioButtonInterface createRadioButton(YJWidgetInterface widget,
			String string, boolean enabled);

	public YJComboBoxInterface createComboBox(YJWidgetInterface widget,
			String string, boolean enabled);

	public YJSelectionBoxInterface createSelectionBox(YJWidgetInterface widget,
			String string);

	public YJTreeInterface createTree(YJWidgetInterface widget, String caption);

	public YJProgressBarInterface createProgressBar(YJWidgetInterface widget,
			String string, int value);

	public YJRichTextInterface createRichText(YJWidgetInterface widget,
			String string, boolean enabled);

	public YJBusyIndicatorInterface createBusyIndicator(YJWidgetInterface w,
			String label, int timeout);

	public YJIntFieldInterface createIntField(YJWidgetInterface w,
			String label, int min, int max, int init);

	public YJMenuButtonInterface createMenuButton(YJWidgetInterface widget,
			String label);

	public YJMultiLineEditInterface createMultiLineEdit(
			YJWidgetInterface widget, String label);

	public YJImageInterface createImage(YJWidgetInterface widget,
			String string, boolean enabled);

	public YJLogViewInterface createLogView(YJWidgetInterface widget,
			String string, int i, int j);

	public YJMultiSelectionBoxInterface createMultiSelectionBox(
			YJWidgetInterface widget, String label);

	public YJPackageSelectorInterface createPackageSelector(
			YJWidgetInterface widget, int flags);

	public YJWidgetInterface createPkgSpecial(YJWidgetInterface w, String label);

	public YJEmptyInterface createEmpty(YJWidgetInterface w);

	/**
	 * 
	 * @param widget
	 * @param horType
	 *            - YAlignmentType
	 * @param verType
	 *            - YAlignmentType
	 * @return
	 */
	public YJAlignmentInterface createAlignment(YJWidgetInterface widget,
			int horType, int verType);

	public YJFrameInterface createFrame(YJWidgetInterface widget, String caption);

	public YJRadioButtonGroupInterface createRadioButtonGroup(
			YJWidgetInterface w);

	public YJReplacePointInterface createReplacePoint(YJWidgetInterface w);
}
